/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package EA_Model.IEC61970.LoadModel.impl;

import EA_Model.IEC61970.Core.impl.IdentifiedObjectImpl;

import EA_Model.IEC61970.LoadModel.LoadModelPackage;
import EA_Model.IEC61970.LoadModel.LoadResponseCharacteristic;

import org.eclipse.emf.common.notify.Notification;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;

import org.eclipse.emf.ecore.impl.ENotificationImpl;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Load Response Characteristic</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link EA_Model.IEC61970.LoadModel.impl.LoadResponseCharacteristicImpl#getExponentModel <em>Exponent Model</em>}</li>
 *   <li>{@link EA_Model.IEC61970.LoadModel.impl.LoadResponseCharacteristicImpl#getPConstantCurrent <em>PConstant Current</em>}</li>
 *   <li>{@link EA_Model.IEC61970.LoadModel.impl.LoadResponseCharacteristicImpl#getPConstantImpedance <em>PConstant Impedance</em>}</li>
 *   <li>{@link EA_Model.IEC61970.LoadModel.impl.LoadResponseCharacteristicImpl#getPConstantPower <em>PConstant Power</em>}</li>
 *   <li>{@link EA_Model.IEC61970.LoadModel.impl.LoadResponseCharacteristicImpl#getPFrequencyExponent <em>PFrequency Exponent</em>}</li>
 *   <li>{@link EA_Model.IEC61970.LoadModel.impl.LoadResponseCharacteristicImpl#getPVoltageExponent <em>PVoltage Exponent</em>}</li>
 *   <li>{@link EA_Model.IEC61970.LoadModel.impl.LoadResponseCharacteristicImpl#getQConstantCurrent <em>QConstant Current</em>}</li>
 *   <li>{@link EA_Model.IEC61970.LoadModel.impl.LoadResponseCharacteristicImpl#getQConstantImpedance <em>QConstant Impedance</em>}</li>
 *   <li>{@link EA_Model.IEC61970.LoadModel.impl.LoadResponseCharacteristicImpl#getQConstantPower <em>QConstant Power</em>}</li>
 *   <li>{@link EA_Model.IEC61970.LoadModel.impl.LoadResponseCharacteristicImpl#getQFrequencyExponent <em>QFrequency Exponent</em>}</li>
 *   <li>{@link EA_Model.IEC61970.LoadModel.impl.LoadResponseCharacteristicImpl#getQVoltageExponent <em>QVoltage Exponent</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class LoadResponseCharacteristicImpl extends IdentifiedObjectImpl implements LoadResponseCharacteristic {
	/**
	 * The cached value of the '{@link #getExponentModel() <em>Exponent Model</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getExponentModel()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Boolean exponentModel;

	/**
	 * The cached value of the '{@link #getPConstantCurrent() <em>PConstant Current</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getPConstantCurrent()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Float pConstantCurrent;

	/**
	 * The cached value of the '{@link #getPConstantImpedance() <em>PConstant Impedance</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getPConstantImpedance()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Float pConstantImpedance;

	/**
	 * The cached value of the '{@link #getPConstantPower() <em>PConstant Power</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getPConstantPower()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Float pConstantPower;

	/**
	 * The cached value of the '{@link #getPFrequencyExponent() <em>PFrequency Exponent</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getPFrequencyExponent()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Float pFrequencyExponent;

	/**
	 * The cached value of the '{@link #getPVoltageExponent() <em>PVoltage Exponent</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getPVoltageExponent()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Float pVoltageExponent;

	/**
	 * The cached value of the '{@link #getQConstantCurrent() <em>QConstant Current</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getQConstantCurrent()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Float qConstantCurrent;

	/**
	 * The cached value of the '{@link #getQConstantImpedance() <em>QConstant Impedance</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getQConstantImpedance()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Float qConstantImpedance;

	/**
	 * The cached value of the '{@link #getQConstantPower() <em>QConstant Power</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getQConstantPower()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Float qConstantPower;

	/**
	 * The cached value of the '{@link #getQFrequencyExponent() <em>QFrequency Exponent</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getQFrequencyExponent()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Float qFrequencyExponent;

	/**
	 * The cached value of the '{@link #getQVoltageExponent() <em>QVoltage Exponent</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getQVoltageExponent()
	 * @generated
	 * @ordered
	 */
	protected EA_Model.IEC61970.Domain.Float qVoltageExponent;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LoadResponseCharacteristicImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return LoadModelPackage.Literals.LOAD_RESPONSE_CHARACTERISTIC;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Boolean getExponentModel() {
		if (exponentModel != null && exponentModel.eIsProxy()) {
			InternalEObject oldExponentModel = (InternalEObject)exponentModel;
			exponentModel = (EA_Model.IEC61970.Domain.Boolean)eResolveProxy(oldExponentModel);
			if (exponentModel != oldExponentModel) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__EXPONENT_MODEL, oldExponentModel, exponentModel));
			}
		}
		return exponentModel;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Boolean basicGetExponentModel() {
		return exponentModel;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setExponentModel(EA_Model.IEC61970.Domain.Boolean newExponentModel) {
		EA_Model.IEC61970.Domain.Boolean oldExponentModel = exponentModel;
		exponentModel = newExponentModel;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__EXPONENT_MODEL, oldExponentModel, exponentModel));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float getPConstantCurrent() {
		if (pConstantCurrent != null && pConstantCurrent.eIsProxy()) {
			InternalEObject oldPConstantCurrent = (InternalEObject)pConstantCurrent;
			pConstantCurrent = (EA_Model.IEC61970.Domain.Float)eResolveProxy(oldPConstantCurrent);
			if (pConstantCurrent != oldPConstantCurrent) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_CURRENT, oldPConstantCurrent, pConstantCurrent));
			}
		}
		return pConstantCurrent;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float basicGetPConstantCurrent() {
		return pConstantCurrent;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setPConstantCurrent(EA_Model.IEC61970.Domain.Float newPConstantCurrent) {
		EA_Model.IEC61970.Domain.Float oldPConstantCurrent = pConstantCurrent;
		pConstantCurrent = newPConstantCurrent;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_CURRENT, oldPConstantCurrent, pConstantCurrent));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float getPConstantImpedance() {
		if (pConstantImpedance != null && pConstantImpedance.eIsProxy()) {
			InternalEObject oldPConstantImpedance = (InternalEObject)pConstantImpedance;
			pConstantImpedance = (EA_Model.IEC61970.Domain.Float)eResolveProxy(oldPConstantImpedance);
			if (pConstantImpedance != oldPConstantImpedance) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_IMPEDANCE, oldPConstantImpedance, pConstantImpedance));
			}
		}
		return pConstantImpedance;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float basicGetPConstantImpedance() {
		return pConstantImpedance;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setPConstantImpedance(EA_Model.IEC61970.Domain.Float newPConstantImpedance) {
		EA_Model.IEC61970.Domain.Float oldPConstantImpedance = pConstantImpedance;
		pConstantImpedance = newPConstantImpedance;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_IMPEDANCE, oldPConstantImpedance, pConstantImpedance));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float getPConstantPower() {
		if (pConstantPower != null && pConstantPower.eIsProxy()) {
			InternalEObject oldPConstantPower = (InternalEObject)pConstantPower;
			pConstantPower = (EA_Model.IEC61970.Domain.Float)eResolveProxy(oldPConstantPower);
			if (pConstantPower != oldPConstantPower) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_POWER, oldPConstantPower, pConstantPower));
			}
		}
		return pConstantPower;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float basicGetPConstantPower() {
		return pConstantPower;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setPConstantPower(EA_Model.IEC61970.Domain.Float newPConstantPower) {
		EA_Model.IEC61970.Domain.Float oldPConstantPower = pConstantPower;
		pConstantPower = newPConstantPower;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_POWER, oldPConstantPower, pConstantPower));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float getPFrequencyExponent() {
		if (pFrequencyExponent != null && pFrequencyExponent.eIsProxy()) {
			InternalEObject oldPFrequencyExponent = (InternalEObject)pFrequencyExponent;
			pFrequencyExponent = (EA_Model.IEC61970.Domain.Float)eResolveProxy(oldPFrequencyExponent);
			if (pFrequencyExponent != oldPFrequencyExponent) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PFREQUENCY_EXPONENT, oldPFrequencyExponent, pFrequencyExponent));
			}
		}
		return pFrequencyExponent;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float basicGetPFrequencyExponent() {
		return pFrequencyExponent;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setPFrequencyExponent(EA_Model.IEC61970.Domain.Float newPFrequencyExponent) {
		EA_Model.IEC61970.Domain.Float oldPFrequencyExponent = pFrequencyExponent;
		pFrequencyExponent = newPFrequencyExponent;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PFREQUENCY_EXPONENT, oldPFrequencyExponent, pFrequencyExponent));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float getPVoltageExponent() {
		if (pVoltageExponent != null && pVoltageExponent.eIsProxy()) {
			InternalEObject oldPVoltageExponent = (InternalEObject)pVoltageExponent;
			pVoltageExponent = (EA_Model.IEC61970.Domain.Float)eResolveProxy(oldPVoltageExponent);
			if (pVoltageExponent != oldPVoltageExponent) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PVOLTAGE_EXPONENT, oldPVoltageExponent, pVoltageExponent));
			}
		}
		return pVoltageExponent;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float basicGetPVoltageExponent() {
		return pVoltageExponent;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setPVoltageExponent(EA_Model.IEC61970.Domain.Float newPVoltageExponent) {
		EA_Model.IEC61970.Domain.Float oldPVoltageExponent = pVoltageExponent;
		pVoltageExponent = newPVoltageExponent;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PVOLTAGE_EXPONENT, oldPVoltageExponent, pVoltageExponent));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float getQConstantCurrent() {
		if (qConstantCurrent != null && qConstantCurrent.eIsProxy()) {
			InternalEObject oldQConstantCurrent = (InternalEObject)qConstantCurrent;
			qConstantCurrent = (EA_Model.IEC61970.Domain.Float)eResolveProxy(oldQConstantCurrent);
			if (qConstantCurrent != oldQConstantCurrent) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_CURRENT, oldQConstantCurrent, qConstantCurrent));
			}
		}
		return qConstantCurrent;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float basicGetQConstantCurrent() {
		return qConstantCurrent;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setQConstantCurrent(EA_Model.IEC61970.Domain.Float newQConstantCurrent) {
		EA_Model.IEC61970.Domain.Float oldQConstantCurrent = qConstantCurrent;
		qConstantCurrent = newQConstantCurrent;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_CURRENT, oldQConstantCurrent, qConstantCurrent));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float getQConstantImpedance() {
		if (qConstantImpedance != null && qConstantImpedance.eIsProxy()) {
			InternalEObject oldQConstantImpedance = (InternalEObject)qConstantImpedance;
			qConstantImpedance = (EA_Model.IEC61970.Domain.Float)eResolveProxy(oldQConstantImpedance);
			if (qConstantImpedance != oldQConstantImpedance) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_IMPEDANCE, oldQConstantImpedance, qConstantImpedance));
			}
		}
		return qConstantImpedance;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float basicGetQConstantImpedance() {
		return qConstantImpedance;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setQConstantImpedance(EA_Model.IEC61970.Domain.Float newQConstantImpedance) {
		EA_Model.IEC61970.Domain.Float oldQConstantImpedance = qConstantImpedance;
		qConstantImpedance = newQConstantImpedance;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_IMPEDANCE, oldQConstantImpedance, qConstantImpedance));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float getQConstantPower() {
		if (qConstantPower != null && qConstantPower.eIsProxy()) {
			InternalEObject oldQConstantPower = (InternalEObject)qConstantPower;
			qConstantPower = (EA_Model.IEC61970.Domain.Float)eResolveProxy(oldQConstantPower);
			if (qConstantPower != oldQConstantPower) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_POWER, oldQConstantPower, qConstantPower));
			}
		}
		return qConstantPower;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float basicGetQConstantPower() {
		return qConstantPower;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setQConstantPower(EA_Model.IEC61970.Domain.Float newQConstantPower) {
		EA_Model.IEC61970.Domain.Float oldQConstantPower = qConstantPower;
		qConstantPower = newQConstantPower;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_POWER, oldQConstantPower, qConstantPower));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float getQFrequencyExponent() {
		if (qFrequencyExponent != null && qFrequencyExponent.eIsProxy()) {
			InternalEObject oldQFrequencyExponent = (InternalEObject)qFrequencyExponent;
			qFrequencyExponent = (EA_Model.IEC61970.Domain.Float)eResolveProxy(oldQFrequencyExponent);
			if (qFrequencyExponent != oldQFrequencyExponent) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QFREQUENCY_EXPONENT, oldQFrequencyExponent, qFrequencyExponent));
			}
		}
		return qFrequencyExponent;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float basicGetQFrequencyExponent() {
		return qFrequencyExponent;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setQFrequencyExponent(EA_Model.IEC61970.Domain.Float newQFrequencyExponent) {
		EA_Model.IEC61970.Domain.Float oldQFrequencyExponent = qFrequencyExponent;
		qFrequencyExponent = newQFrequencyExponent;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QFREQUENCY_EXPONENT, oldQFrequencyExponent, qFrequencyExponent));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float getQVoltageExponent() {
		if (qVoltageExponent != null && qVoltageExponent.eIsProxy()) {
			InternalEObject oldQVoltageExponent = (InternalEObject)qVoltageExponent;
			qVoltageExponent = (EA_Model.IEC61970.Domain.Float)eResolveProxy(oldQVoltageExponent);
			if (qVoltageExponent != oldQVoltageExponent) {
				if (eNotificationRequired())
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QVOLTAGE_EXPONENT, oldQVoltageExponent, qVoltageExponent));
			}
		}
		return qVoltageExponent;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EA_Model.IEC61970.Domain.Float basicGetQVoltageExponent() {
		return qVoltageExponent;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setQVoltageExponent(EA_Model.IEC61970.Domain.Float newQVoltageExponent) {
		EA_Model.IEC61970.Domain.Float oldQVoltageExponent = qVoltageExponent;
		qVoltageExponent = newQVoltageExponent;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QVOLTAGE_EXPONENT, oldQVoltageExponent, qVoltageExponent));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object eGet(int featureID, boolean resolve, boolean coreType) {
		switch (featureID) {
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__EXPONENT_MODEL:
				if (resolve) return getExponentModel();
				return basicGetExponentModel();
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_CURRENT:
				if (resolve) return getPConstantCurrent();
				return basicGetPConstantCurrent();
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_IMPEDANCE:
				if (resolve) return getPConstantImpedance();
				return basicGetPConstantImpedance();
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_POWER:
				if (resolve) return getPConstantPower();
				return basicGetPConstantPower();
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PFREQUENCY_EXPONENT:
				if (resolve) return getPFrequencyExponent();
				return basicGetPFrequencyExponent();
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PVOLTAGE_EXPONENT:
				if (resolve) return getPVoltageExponent();
				return basicGetPVoltageExponent();
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_CURRENT:
				if (resolve) return getQConstantCurrent();
				return basicGetQConstantCurrent();
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_IMPEDANCE:
				if (resolve) return getQConstantImpedance();
				return basicGetQConstantImpedance();
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_POWER:
				if (resolve) return getQConstantPower();
				return basicGetQConstantPower();
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QFREQUENCY_EXPONENT:
				if (resolve) return getQFrequencyExponent();
				return basicGetQFrequencyExponent();
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QVOLTAGE_EXPONENT:
				if (resolve) return getQVoltageExponent();
				return basicGetQVoltageExponent();
		}
		return super.eGet(featureID, resolve, coreType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eSet(int featureID, Object newValue) {
		switch (featureID) {
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__EXPONENT_MODEL:
				setExponentModel((EA_Model.IEC61970.Domain.Boolean)newValue);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_CURRENT:
				setPConstantCurrent((EA_Model.IEC61970.Domain.Float)newValue);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_IMPEDANCE:
				setPConstantImpedance((EA_Model.IEC61970.Domain.Float)newValue);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_POWER:
				setPConstantPower((EA_Model.IEC61970.Domain.Float)newValue);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PFREQUENCY_EXPONENT:
				setPFrequencyExponent((EA_Model.IEC61970.Domain.Float)newValue);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PVOLTAGE_EXPONENT:
				setPVoltageExponent((EA_Model.IEC61970.Domain.Float)newValue);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_CURRENT:
				setQConstantCurrent((EA_Model.IEC61970.Domain.Float)newValue);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_IMPEDANCE:
				setQConstantImpedance((EA_Model.IEC61970.Domain.Float)newValue);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_POWER:
				setQConstantPower((EA_Model.IEC61970.Domain.Float)newValue);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QFREQUENCY_EXPONENT:
				setQFrequencyExponent((EA_Model.IEC61970.Domain.Float)newValue);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QVOLTAGE_EXPONENT:
				setQVoltageExponent((EA_Model.IEC61970.Domain.Float)newValue);
				return;
		}
		super.eSet(featureID, newValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eUnset(int featureID) {
		switch (featureID) {
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__EXPONENT_MODEL:
				setExponentModel((EA_Model.IEC61970.Domain.Boolean)null);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_CURRENT:
				setPConstantCurrent((EA_Model.IEC61970.Domain.Float)null);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_IMPEDANCE:
				setPConstantImpedance((EA_Model.IEC61970.Domain.Float)null);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_POWER:
				setPConstantPower((EA_Model.IEC61970.Domain.Float)null);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PFREQUENCY_EXPONENT:
				setPFrequencyExponent((EA_Model.IEC61970.Domain.Float)null);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PVOLTAGE_EXPONENT:
				setPVoltageExponent((EA_Model.IEC61970.Domain.Float)null);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_CURRENT:
				setQConstantCurrent((EA_Model.IEC61970.Domain.Float)null);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_IMPEDANCE:
				setQConstantImpedance((EA_Model.IEC61970.Domain.Float)null);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_POWER:
				setQConstantPower((EA_Model.IEC61970.Domain.Float)null);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QFREQUENCY_EXPONENT:
				setQFrequencyExponent((EA_Model.IEC61970.Domain.Float)null);
				return;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QVOLTAGE_EXPONENT:
				setQVoltageExponent((EA_Model.IEC61970.Domain.Float)null);
				return;
		}
		super.eUnset(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean eIsSet(int featureID) {
		switch (featureID) {
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__EXPONENT_MODEL:
				return exponentModel != null;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_CURRENT:
				return pConstantCurrent != null;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_IMPEDANCE:
				return pConstantImpedance != null;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PCONSTANT_POWER:
				return pConstantPower != null;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PFREQUENCY_EXPONENT:
				return pFrequencyExponent != null;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__PVOLTAGE_EXPONENT:
				return pVoltageExponent != null;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_CURRENT:
				return qConstantCurrent != null;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_IMPEDANCE:
				return qConstantImpedance != null;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QCONSTANT_POWER:
				return qConstantPower != null;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QFREQUENCY_EXPONENT:
				return qFrequencyExponent != null;
			case LoadModelPackage.LOAD_RESPONSE_CHARACTERISTIC__QVOLTAGE_EXPONENT:
				return qVoltageExponent != null;
		}
		return super.eIsSet(featureID);
	}

} //LoadResponseCharacteristicImpl
